package LeetCode;

/**
 * @author VX5
 * @Title: MJC
 * @ProjectName DataStructure
 * @Description: TODO
 * @date ${DAT}21:18
 */
public class LeetCode104 {

    public class TreeNode {
      int val;
      TreeNode left;
      TreeNode right;
      TreeNode(int x) { val = x; }
    }
//    int left = 0;
//    int right = 0;
//    public int maxDepth(TreeNode root) {
//        if (root == null){
//            return 0;
//        }
//         getTheDeep(root);
//         return Math.max(left,right)+1;
//    }
//
//    public void getTheDeep(TreeNode root) {
//        //递归终结条件
//        if (root == null){
//            return;
//        }
//        //处理逻辑
//        if (root.left != null){
//            left++;
//        }
//        if (root.right != null){
//            right++;
//        }
//        //下探到下一层
//        getTheDeep(root.left);
//        getTheDeep(root.right);
//    }

    public int maxDepth(TreeNode root) {
        //terminator
        if (root == null) {
            return 0;
        } else {
            //drill down
            int left_height = maxDepth(root.left);
            int right_height = maxDepth(root.right);
            //计算完一层后的结果
            //restore current status
            return Math.max(left_height, right_height) + 1;
        }
    }
}
